//
//  HMStatusViewModel.swift
//  01-SinaWeibo
//
//  Created by 周英培 on 16/5/25.
//  Copyright © 2016年 周英培. All rights reserved.
//   视图模型 针对具体的视图 一些视图里面不能直接显示数据的，可以封装在这个视图模型里面
/*
 A.计算型属性
 - 每次执行都会计算
 - 消耗cpu
 - 需要实时更新的一些逻辑数据 可以使用计算型属性
 
 B.存储性属性
 - 只需要计算一次
 - 绝大部分情况使用存储性属性
 - 消耗内存
 */
import UIKit

class HMStatusViewModel: NSObject {

    //视图模型 绑定一个模型
    //1. init方法中设置无法调用didSet
    //2. 在didSet内部设置 也无法调用didSet
    var status : HMStatusModel?
    //    {
    //
    //        didSet {
    //            status = xxx
    //        }
    //    }
    
    //认证图片
    var verifiedImage : UIImage?
    
    //认证等级
    var mbrankImage : UIImage?
    
    //头像
    var headImageURL : NSURL?
    
    //转发
    var reportsText : String?
    
    //评论
    var commentsText : String?
    
    //点赞
    var attitudesText : String?
    
    
    
    
    //处理创建微博时间
    //计算机属性
    var time : String? {
    
    return NSDate.sinaDate(status?.created_at ?? "")?.fullDescription()
    
    }
    
    //微博来源
    var sourceText : String?
    
    
  
    init(status:HMStatusModel) {
        super.init()
        self.status = status
        
        //头像地址
        headImageURL = NSURL(string: status.user?.profile_image_url ?? "")
        
        dealMbrank()
        
        dealVerifiedImage()
        
        dealSourceText()
        
        reportsText = dealToolBarText(status.reposts_count, defaultText: "转发")
        commentsText = dealToolBarText(status.comments_count, defaultText: "评论")
        attitudesText = dealToolBarText(status.attitudes_count, defaultText: "点赞")
    }
    
}

extension HMStatusViewModel {

//处理用户认证
    private func dealVerifiedImage() {
    
        let veriType = status?.user?.verified ?? 0
        
        if veriType == 1 {
            verifiedImage = UIImage(named: "avatar_vip")
        }
     
    }

    //处理用户等级
    private func dealMbrank() {
    
        let mbrankType = status?.user?.mbrank ?? 0
        
        if mbrankType > 0 && mbrankType < 7 {
            mbrankImage = UIImage(named: "common_icon_membership_level\(mbrankType)")
        }
      
    }
    
    //处理微信来源  把微信来源接口里面的中文截取出来
    private func dealSourceText() {
    
        let startFlag = "\">"
        let endFlag = "</a>"
        
        //微信来源的字符串
        let str = status?.source ?? ""
        
        let startRange = str.rangeOfString(startFlag)
        let endRange = str.rangeOfString(endFlag)
        
        //进行判断 是否有值
        if let start = startRange,end = endRange {
            
            //获取要截取字符串的范围
            let range = start.endIndex..<end.startIndex
            
            //截取
            sourceText = str.substringWithRange(range)
            
        }
        
    }
    
    //设置底部三个按钮的数量值
    private func dealToolBarText(count:Int,defaultText:String) -> String {
    
        //如果没有数值，就返回默认的转发 评论 和点赞文字
        if count <= 0 {
            
            return defaultText
        }
        
        //如果数值大于一万 则显示多少万
        if count >= 10000 {
            
            return "\(Double(count / 1000) / 10)万"
        }
        
        //大于零的 小于一万的 
        return "\(count)"
    
    }
}
//
////认证图片
//if statusViewModel?.status?.user?.verified == 1 {
//    
//    //是认证用户 显示认证图片
//    verifiedIcon.hidden = false
//    
//} else {
//    
//    verifiedIcon.hidden = true
//    
//}
//
////用户等级
//if statusViewModel?.status?.user?.mbrank > 0 && statusViewModel?.status?.user?.mbrank < 7 {
//    
//    mbrankIcon.image = UIImage(named: "common_icon_membership_level\(statusViewModel?.status?.user?.mbrank ?? 0)")
//}

